/*
 * BuscarPJuridica.java
 *
 * Created on 29/07/2009, 14:20:34
 * Copyright LAS
 */
package Soligee.view;

import Soligee.controller.facade.sessionFacadeImplements.SessionFacadeAlterarImplements;
import Soligee.controller.facade.sessionFacadeImplements.SessionFacadeBuscarImplements;
import Soligee.controller.facade.sessionFacadeImplements.SessionFacadeRemoverImplements;
import Soligee.decorador.PaginacaoListaCincoEmCinco;
import Soligee.model.vo.cadastros.CidadeVO;
import Soligee.model.vo.cadastros.EnderecoVO;
import Soligee.model.vo.cadastros.PessoaJuridicaVO;
import com.icesoft.faces.component.dragdrop.DragEvent;
import com.icesoft.faces.component.ext.HtmlCommandButton;
import com.icesoft.faces.component.ext.HtmlDataTable;
import com.icesoft.faces.component.ext.HtmlInputText;
import com.icesoft.faces.component.ext.HtmlOutputLabel;
import com.icesoft.faces.component.ext.HtmlOutputText;
import com.icesoft.faces.component.ext.HtmlSelectOneMenu;
import com.icesoft.faces.component.ext.HtmlSelectOneRadio;
import com.icesoft.faces.component.jsfcl.data.DefaultSelectedData;
import com.icesoft.faces.component.jsfcl.data.DefaultSelectionItems;
import com.icesoft.faces.component.jsfcl.data.DefaultTableDataModel;
import com.icesoft.faces.component.jsfcl.data.PopupBean;
import com.icesoft.faces.component.jsfcl.data.SelectInputDateBean;
import com.icesoft.faces.component.panellayout.PanelLayout;
import com.icesoft.faces.component.panelpopup.PanelPopup;
import com.icesoft.faces.component.paneltabset.PanelTabSet;
import com.icesoft.faces.component.paneltabset.TabChangeEvent;
import com.icesoft.faces.component.selectinputdate.SelectInputDate;
import com.icesoft.faces.component.selectinputtext.SelectInputText;
import com.sun.rave.faces.data.DefaultSelectItemsArray;
import com.sun.rave.web.ui.appbase.AbstractPageBean;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.faces.FacesException;
import javax.faces.component.UISelectItems;
import javax.faces.context.FacesContext;
import javax.faces.event.ValueChangeEvent;
import javax.faces.model.SelectItem;

public class BuscarPessoaJuridica extends AbstractPageBean {
   // <editor-fold defaultstate="collapsed" desc="Managed Component Definition">

   private int __placeholder;
   private static PessoaJuridicaVO pessoaJuridica;
   private List<PessoaJuridicaVO> listaDePessoaJuridica = new ArrayList();  //lista para preencher a tabela
   private DefaultSelectionItems item; //item do autocomplete
   private boolean controle;
   private int controlaSaida = 0;
   private static EnderecoVO endereco;
   private static PaginacaoListaCincoEmCinco paginacaoLista;

   public static PaginacaoListaCincoEmCinco getPaginacaoLista() {
      return paginacaoLista;
   }

   public static void setPaginacaoLista(PaginacaoListaCincoEmCinco paginacaoLista) {
      BuscarPessoaJuridica.paginacaoLista = paginacaoLista;
   }

   public List<PessoaJuridicaVO> getListaDePessoaJuridica() {
      return listaDePessoaJuridica;
   }

   public void setListaDePessoaJuridica(List<PessoaJuridicaVO> listaDePessoaJuridica) {
      this.listaDePessoaJuridica = listaDePessoaJuridica;
   }

   /**
    * <p>Automatically managed component initialization.  <strong>WARNING:</strong>
    * This method is automatically generated, so any user-specified code inserted
    * here is subject to being replaced.</p>
    */
   private void _init() throws Exception {
   }
   private DefaultTableDataModel dataTable1Model = new DefaultTableDataModel();

   public DefaultTableDataModel getDataTable1Model() {
      return dataTable1Model;
   }

   public void setDataTable1Model(DefaultTableDataModel dtdm) {
      this.dataTable1Model = dtdm;
   }
   //Data Cadastro
   private SelectInputDateBean selectInputDate1Bean = new SelectInputDateBean();

   public SelectInputDateBean getSelectInputDate1Bean() {
      return selectInputDate1Bean;
   }

   public void setSelectInputDate1Bean(SelectInputDateBean sidb) {
      this.selectInputDate1Bean = sidb;
   }
   //Opção - Tipo Endereço
   private DefaultSelectedData botaoSelecionadoTipoEndereco = new DefaultSelectedData();

   public DefaultSelectedData getBotaoSelecionadoTipoEndereco() {
      return botaoSelecionadoTipoEndereco;
   }

   public void setBotaoSelecionadoTipoEndereco(DefaultSelectedData dsd) {
      this.botaoSelecionadoTipoEndereco = dsd;
   }
   private DefaultSelectionItems botaoTipoEndereco = new DefaultSelectionItems();

   public DefaultSelectionItems getBotaoTipoEndereco() {
      return botaoTipoEndereco;
   }

   public void setBotaoTipoEndereco(DefaultSelectionItems dsi) {
      this.botaoTipoEndereco = dsi;
   }//Fim Opção - Tipo Endereço

   //Opção - UF
   private DefaultSelectedData botaoSelecionadoUf = new DefaultSelectedData();

   public DefaultSelectedData getBotaoSelecionadoUf() {
      return botaoSelecionadoUf;
   }

   public void setBotaoSelecionadoUf(DefaultSelectedData dsd) {
      this.botaoSelecionadoUf = dsd;
   }
   private DefaultSelectionItems botaoUf = new DefaultSelectionItems();

   public DefaultSelectionItems getBotaoUf() {
      return botaoUf;
   }

   public void setBotaoUf(DefaultSelectionItems dsi) {
      this.botaoUf = dsi;
   }//Gim Opção - UF
   private HtmlSelectOneMenu opcaoUf = new HtmlSelectOneMenu();

   public HtmlSelectOneMenu getOpcaoUf() {
      return opcaoUf;
   }

   public void setOpcaoUf(HtmlSelectOneMenu hsom) {
      this.opcaoUf = hsom;
   }
   private PanelTabSet painelBuscarPessoaJuridica = new PanelTabSet();

   public PanelTabSet getPainelBuscarPessoaJuridica() {
      return painelBuscarPessoaJuridica;
   }

   public void setPainelBuscarPessoaJuridica(PanelTabSet pts) {
      this.painelBuscarPessoaJuridica = pts;
   }
   private DefaultSelectedData selectOneMenu1Bean = new DefaultSelectedData();

   public DefaultSelectedData getSelectOneMenu1Bean() {
      return selectOneMenu1Bean;
   }

   public void setSelectOneMenu1Bean(DefaultSelectedData dsd) {
      this.selectOneMenu1Bean = dsd;
   }
   private SelectInputText campoABuscar = new SelectInputText();

   public SelectInputText getCampoABuscar() {
      return campoABuscar;
   }

   public void setCampoABuscar(SelectInputText sit) {
      this.campoABuscar = sit;
   }
   private HtmlInputText campoCodCliente = new HtmlInputText();

   public HtmlInputText getCampoCodCliente() {
      return campoCodCliente;
   }

   public void setCampoCodCliente(HtmlInputText hit) {
      this.campoCodCliente = hit;
   }
   private HtmlInputText campoNomeCompleto = new HtmlInputText();

   public HtmlInputText getCampoNomeCompleto() {
      return campoNomeCompleto;
   }

   public void setCampoNomeCompleto(HtmlInputText hit) {
      this.campoNomeCompleto = hit;
   }
   private HtmlInputText campoPaginaWeb = new HtmlInputText();

   public HtmlInputText getCampoPaginaWeb() {
      return campoPaginaWeb;
   }

   public void setCampoPaginaWeb(HtmlInputText hit) {
      this.campoPaginaWeb = hit;
   }
   private SelectInputDate dataCadastro = new SelectInputDate();

   public SelectInputDate getDataCadastro() {
      return dataCadastro;
   }

   public void setDataCadastro(SelectInputDate sid) {
      this.dataCadastro = sid;
   }
   private HtmlInputText campoEmail = new HtmlInputText();

   public HtmlInputText getCampoEmail() {
      return campoEmail;
   }

   public void setCampoEmail(HtmlInputText hit) {
      this.campoEmail = hit;
   }
   private HtmlInputText campoIncricaoEstadual = new HtmlInputText();

   public HtmlInputText getCampoIncricaoEstadual() {
      return campoIncricaoEstadual;
   }

   public void setCampoIncricaoEstadual(HtmlInputText hit) {
      this.campoIncricaoEstadual = hit;
   }
   private HtmlInputText campoRazaoSocial = new HtmlInputText();

   public HtmlInputText getCampoRazaoSocial() {
      return campoRazaoSocial;
   }

   public void setCampoRazaoSocial(HtmlInputText hit) {
      this.campoRazaoSocial = hit;
   }
   private HtmlInputText campoCnpj = new HtmlInputText();

   public HtmlInputText getCampoCnpj() {
      return campoCnpj;
   }

   public void setCampoCnpj(HtmlInputText hit) {
      this.campoCnpj = hit;
   }
   private HtmlInputText campoBairro = new HtmlInputText();

   public HtmlInputText getCampoBairro() {
      return campoBairro;
   }

   public void setCampoBairro(HtmlInputText hit) {
      this.campoBairro = hit;
   }
   private HtmlInputText campoComplemento = new HtmlInputText();

   public HtmlInputText getCampoComplemento() {
      return campoComplemento;
   }

   public void setCampoComplemento(HtmlInputText hit) {
      this.campoComplemento = hit;
   }
   private HtmlInputText campoRua = new HtmlInputText();

   public HtmlInputText getCampoRua() {
      return campoRua;
   }

   public void setCampoRua(HtmlInputText hit) {
      this.campoRua = hit;
   }
   private HtmlSelectOneRadio tipoEndereco = new HtmlSelectOneRadio();

   public HtmlSelectOneRadio getTipoEndereco() {
      return tipoEndereco;
   }

   public void setTipoEndereco(HtmlSelectOneRadio hsor) {
      this.tipoEndereco = hsor;
   }
   private HtmlInputText campoNumero = new HtmlInputText();

   public HtmlInputText getCampoNumero() {
      return campoNumero;
   }

   public void setCampoNumero(HtmlInputText hit) {
      this.campoNumero = hit;
   }
   private HtmlInputText campoCep = new HtmlInputText();

   public HtmlInputText getCampoCep() {
      return campoCep;
   }

   public void setCampoCep(HtmlInputText hit) {
      this.campoCep = hit;
   }
   private HtmlInputText campoTelefoneComercial = new HtmlInputText();

   public HtmlInputText getCampoTelefoneComercial() {
      return campoTelefoneComercial;
   }

   public void setCampoTelefoneComercial(HtmlInputText hit) {
      this.campoTelefoneComercial = hit;
   }
   private HtmlInputText campoFax = new HtmlInputText();

   public HtmlInputText getCampoFax() {
      return campoFax;
   }

   public void setCampoFax(HtmlInputText hit) {
      this.campoFax = hit;
   }
   private HtmlDataTable tabelaResultadoBusca = new HtmlDataTable();

   public HtmlDataTable getTabelaResultadoBusca() {
      return tabelaResultadoBusca;
   }

   public void setTabelaResultadoBusca(HtmlDataTable hdt) {
      this.tabelaResultadoBusca = hdt;
   }
   private HtmlSelectOneMenu tipoBusca = new HtmlSelectOneMenu();

   public HtmlSelectOneMenu getTipoBusca() {
      return tipoBusca;
   }

   public void setTipoBusca(HtmlSelectOneMenu tipoBusca) {
      this.tipoBusca = tipoBusca;
   }
   
   
   private HtmlCommandButton tabelaResultadoBuscaFooterLastButton = new HtmlCommandButton();

   public HtmlCommandButton getTabelaResultadoBuscaFooterLastButton() {
      return tabelaResultadoBuscaFooterLastButton;
   }

   public void setTabelaResultadoBuscaFooterLastButton(HtmlCommandButton hcb) {
      this.tabelaResultadoBuscaFooterLastButton = hcb;
   }
   private HtmlCommandButton tabelaResultadoBuscaFooterNextButton = new HtmlCommandButton();

   public HtmlCommandButton getTabelaResultadoBuscaFooterNextButton() {
      return tabelaResultadoBuscaFooterNextButton;
   }

   public void setTabelaResultadoBuscaFooterNextButton(HtmlCommandButton hcb) {
      this.tabelaResultadoBuscaFooterNextButton = hcb;
   }
   private HtmlCommandButton tabelaResultadoBuscaFooterPreviousButton = new HtmlCommandButton();

   public HtmlCommandButton getTabelaResultadoBuscaFooterPreviousButton() {
      return tabelaResultadoBuscaFooterPreviousButton;
   }

   public void setTabelaResultadoBuscaFooterPreviousButton(HtmlCommandButton hcb) {
      this.tabelaResultadoBuscaFooterPreviousButton = hcb;
   }
   private HtmlCommandButton tabelaResultadoBuscaFooterFirstButton = new HtmlCommandButton();

   public HtmlCommandButton getTabelaResultadoBuscaFooterFirstButton() {
      return tabelaResultadoBuscaFooterFirstButton;
   }

   public void setTabelaResultadoBuscaFooterFirstButton(HtmlCommandButton hcb) {
      this.tabelaResultadoBuscaFooterFirstButton = hcb;
   }
   private HtmlCommandButton btnPopUp1 = new HtmlCommandButton();

   public HtmlCommandButton getBtnPopUp1() {
      return btnPopUp1;
   }

   public void setBtnPopUp1(HtmlCommandButton hcb) {
      this.btnPopUp1 = hcb;
   }
   private HtmlCommandButton btnPopUp2 = new HtmlCommandButton();

   public HtmlCommandButton getBtnPopUp2() {
      return btnPopUp2;
   }

   public void setBtnPopUp2(HtmlCommandButton hcb) {
      this.btnPopUp2 = hcb;
   }
   private HtmlCommandButton btnConfirmaAlteracao = new HtmlCommandButton();

   public HtmlCommandButton getBtnConfirmaAlteracao() {
      return btnConfirmaAlteracao;
   }

   public void setBtnConfirmaAlteracao(HtmlCommandButton hcb) {
      this.btnConfirmaAlteracao = hcb;
   }
   private HtmlCommandButton btnAlterar1 = new HtmlCommandButton();

   public HtmlCommandButton getBtnAlterar1() {
      return btnAlterar1;
   }

   public void setBtnAlterar1(HtmlCommandButton hcb) {
      this.btnAlterar1 = hcb;
   }
   private HtmlCommandButton btn_excluir = new HtmlCommandButton();

   public HtmlCommandButton getBtn_excluir() {
      return btn_excluir;
   }

   public void setBtn_excluir(HtmlCommandButton hcb) {
      this.btn_excluir = hcb;
   }
   private HtmlCommandButton btn_confirmaAlteracao = new HtmlCommandButton();

   public HtmlCommandButton getBtn_confirmaAlteracao() {
      return btn_confirmaAlteracao;
   }

   public void setBtn_confirmaAlteracao(HtmlCommandButton hcb) {
      this.btn_confirmaAlteracao = hcb;
   }
   private DefaultSelectedData defaultSelectedData1 = new DefaultSelectedData();

   public DefaultSelectedData getDefaultSelectedData1() {
      return defaultSelectedData1;
   }

   public void setDefaultSelectedData1(DefaultSelectedData dsd) {
      this.defaultSelectedData1 = dsd;
   }
   private DefaultSelectionItems selectOneMenu1DefaultItems1 = new DefaultSelectionItems();

   public DefaultSelectionItems getSelectOneMenu1DefaultItems1() {
      return selectOneMenu1DefaultItems1;
   }

   public void setSelectOneMenu1DefaultItems1(DefaultSelectionItems dsi) {
      this.selectOneMenu1DefaultItems1 = dsi;
   }
   private DefaultSelectItemsArray tipoBuscaDefaultItems = new DefaultSelectItemsArray();

   public DefaultSelectItemsArray getTipoBuscaDefaultItems() {
      return tipoBuscaDefaultItems;
   }

   public void setTipoBuscaDefaultItems(DefaultSelectItemsArray dsia) {
      this.tipoBuscaDefaultItems = dsia;
   }
   private HtmlSelectOneMenu campoCidade = new HtmlSelectOneMenu();

   public HtmlSelectOneMenu getCampoCidade() {
      return campoCidade;
   }

   public void setCampoCidade(HtmlSelectOneMenu hsom) {
      this.campoCidade = hsom;
   }
   private PopupBean panelPopup1Bean = new PopupBean();

   public PopupBean getPanelPopup1Bean() {
      return panelPopup1Bean;
   }

   public void setPanelPopup1Bean(PopupBean pb) {
      this.panelPopup1Bean = pb;
   }
   private PanelPopup panelPopup = new PanelPopup();

   public PanelPopup getPanelPopup() {
      return panelPopup;
   }

   public void setPanelPopup(PanelPopup pp) {
      this.panelPopup = pp;
   }
   private HtmlOutputText textoPopUp1 = new HtmlOutputText();

   public HtmlOutputText getTextoPopUp1() {
      return textoPopUp1;
   }

   public void setTextoPopUp1(HtmlOutputText hot) {
      this.textoPopUp1 = hot;
   }
   private HtmlOutputLabel tx_tipoEndereco = new HtmlOutputLabel();

   public HtmlOutputLabel getTx_tipoEndereco() {
      return tx_tipoEndereco;
   }

   public void setTx_tipoEndereco(HtmlOutputLabel hol) {
      this.tx_tipoEndereco = hol;
   }
   private UISelectItems selectInputText1selectedItems = new UISelectItems();

   public UISelectItems getSelectInputText1selectedItems() {
      return selectInputText1selectedItems;
   }

   public void setSelectInputText1selectedItems(UISelectItems uisi) {
      this.selectInputText1selectedItems = uisi;
   }
   private HtmlCommandButton btn_voltar = new HtmlCommandButton();

   public HtmlCommandButton getBtn_voltar() {
      return btn_voltar;
   }

   public void setBtn_voltar(HtmlCommandButton hcb) {
      this.btn_voltar = hcb;
   }
   private PanelLayout painelCorpoDireita = new PanelLayout();

   public PanelLayout getPainelCorpoDireita() {
      return painelCorpoDireita;
   }

   public void setPainelCorpoDireita(PanelLayout pl) {
      this.painelCorpoDireita = pl;
   }

   // </editor-fold>
   public BuscarPessoaJuridica() {
   }

   @Override
   public void init() {
      // Perform initializations inherited from our superclass
      super.init();
      FacesContext.getCurrentInstance().getExternalContext().getRequestMap().clear();
      this.inicializaCampos();
      // <editor-fold defaultstate="collapsed" desc="Managed Component Initialization">
      // Initialize automatically managed components
      // *Note* - this logic should NOT be modified
      try {
         _init();
      } catch (Exception e) {
         log("BuscarPJuridica Initialization Failure", e);
         throw e instanceof FacesException ? (FacesException) e : new FacesException(e);
      }

   // </editor-fold>

   }

   public void inicializaCampos() {
       
      //Opção - Tipo Endereço
      campoRazaoSocial.setMaxlength(50);
      campoNomeCompleto.setMaxlength(100);
      campoIncricaoEstadual.setMaxlength(20);
      campoEmail.setMaxlength(50);
      campoPaginaWeb.setMaxlength(50);
      campoRua.setMaxlength(50);
      campoNumero.setMaxlength(10);

      botaoTipoEndereco.clear();
      botaoTipoEndereco.add(new SelectItem(2, "Com."));
      tipoBuscaDefaultItems.clear();
      tipoBuscaDefaultItems.add(new SelectItem(1, "Nome"));
      tipoBuscaDefaultItems.add(new SelectItem(2, "CNPJ"));
      tipoBuscaDefaultItems.add(new SelectItem(3, "Todos"));
      dataTable1Model.setWrappedData(null);
      painelBuscarPessoaJuridica.setSelectedIndex(0);
      tx_tipoEndereco.setRendered(false);
      tipoEndereco.setRendered(false);
      InicializaCampoCidade(1);
      panelPopup.setRendered(false);
      //UF
      botaoUf.clear();
      botaoUf.add(new SelectItem(1, "AC"));
      botaoUf.add(new SelectItem(2, "AL"));
      botaoUf.add(new SelectItem(3, "AP"));
      botaoUf.add(new SelectItem(4, "AM"));
      botaoUf.add(new SelectItem(5, "BA"));
      botaoUf.add(new SelectItem(6, "CE"));
      botaoUf.add(new SelectItem(7, "DF"));
      botaoUf.add(new SelectItem(8, "ES"));
      botaoUf.add(new SelectItem(9, "GO"));
      botaoUf.add(new SelectItem(10, "MA"));
      botaoUf.add(new SelectItem(11, "MT"));
      botaoUf.add(new SelectItem(12, "MS"));
      botaoUf.add(new SelectItem(13, "MG"));
      botaoUf.add(new SelectItem(14, "PA"));
      botaoUf.add(new SelectItem(15, "PB"));
      botaoUf.add(new SelectItem(16, "PR"));
      botaoUf.add(new SelectItem(17, "PE"));
      botaoUf.add(new SelectItem(18, "PI"));
      botaoUf.add(new SelectItem(19, "RJ"));
      botaoUf.add(new SelectItem(20, "RN"));
      botaoUf.add(new SelectItem(21, "RS"));
      botaoUf.add(new SelectItem(22, "RO"));
      botaoUf.add(new SelectItem(23, "RR"));
      botaoUf.add(new SelectItem(24, "SC"));
      botaoUf.add(new SelectItem(25, "SP"));
      botaoUf.add(new SelectItem(26, "SE"));
      botaoUf.add(new SelectItem(27, "TO"));
      this.limpaCampos();
      this.setaCampos(true);
      btnAlterar1.setRendered(false);
      btn_confirmaAlteracao.setRendered(false);
      btn_excluir.setRendered(false);
      // Botões - Paginação
      this.controlaPaginacao(0);
   }

   @Override
   public void preprocess() {
   }

   @Override
   public void prerender() {
   }

   @Override
   public void destroy() {
   }

   protected ApplicationBean1 getview$ApplicationBean1() {
      return (ApplicationBean1) getBean("view$ApplicationBean1");
   }

   protected SessionBean1 getview$SessionBean1() {
      return (SessionBean1) getBean("view$SessionBean1");
   }

   protected RequestBean1 getview$RequestBean1() {
      return (RequestBean1) getBean("view$RequestBean1");
   }

   public String link_proximoPassoAba01_action() {
      painelBuscarPessoaJuridica.setSelectedIndex(1);
      return null;
   }

   public double parserDouble(Object o) {
      return Double.parseDouble(o.toString());
   }

   public int parserInt(Object o) {
      return Integer.parseInt(o.toString());
   }

   public void controlaPopup(boolean renderedPopup, String textoPoup, boolean btn1Rendered, boolean btn2Rendered,
           String textobtn1, String textobtn2) {

      panelPopup.setRendered(renderedPopup);
      textoPopUp1.setValue(textoPoup);
      btnPopUp1.setValue(textobtn1);
      btnPopUp1.setRendered(btn1Rendered);
      btnPopUp2.setRendered(btn2Rendered);
      btnPopUp2.setValue(textobtn2);
   }

   public String btnConfirmaAlteracao_action() {

      controlaPopup(true, "Deseja alterar o cliente Juridico selecionado?", true, true, "Sim", "Não");

      this.controle = true;

      return null;

   }

   public String btnAlterar_action() {
      if (!listaDePessoaJuridica.isEmpty()) {
         this.setaCampos(false);
      } else {
         controlaPopup(true, "Nenhuma pessoa selecionada", false, true, "", "Voltar");

      }
      return null;
   }

   //recupera obejto da linha da tabela
   public String btnBuscar_action() {
      SessionFacadeBuscarImplements facade_busca = new SessionFacadeBuscarImplements();
      switch (Integer.parseInt(tipoBusca.getValue().toString())) {
         case 1://busca por nome
            this.setListaDePessoaJuridica(facade_busca.buscaPorNome("nome", campoABuscar.getValue().toString(), PessoaJuridicaVO.class));
            dataTable1Model.setWrappedData(this.getListaDePessoaJuridica());
            break;
         case 2://busca por cnpj
            this.setListaDePessoaJuridica(facade_busca.buscaPorNome("cnpj", campoABuscar.getValue().toString(), PessoaJuridicaVO.class));
            dataTable1Model.setWrappedData(this.getListaDePessoaJuridica());
            break;
         case 3://busca todos
            this.setListaDePessoaJuridica(facade_busca.buscarTodos("nome", PessoaJuridicaVO.class));
            dataTable1Model.setWrappedData(this.getListaDePessoaJuridica());
            break;
         default:
            System.out.println("Valor inválido do combobox para o tipo da consulta.");
            break;
      }//fim switch
      this.setPaginacaoLista(new PaginacaoListaCincoEmCinco(this.getListaDePessoaJuridica()));
      this.controlaPaginacao(this.getListaDePessoaJuridica().size());
      return null;
   }

   public void setaCampos(boolean x) {
      campoCodCliente.setDisabled(x);
      dataCadastro.setDisabled(x);
      opcaoUf.setDisabled(x);
      campoNomeCompleto.setDisabled(x);
      campoTelefoneComercial.setDisabled(x);
      campoFax.setDisabled(x);
      campoEmail.setDisabled(x);
      campoPaginaWeb.setDisabled(x);
      campoRazaoSocial.setDisabled(x);
      campoCnpj.setDisabled(x);
      campoIncricaoEstadual.setDisabled(x);
      campoRua.setDisabled(x);
      campoBairro.setDisabled(x);
      campoCep.setDisabled(x);
      campoNumero.setDisabled(x);
      campoComplemento.setDisabled(x);
      campoCidade.setDisabled(x);
   }

   public void limpaCampos() {
      campoCodCliente.resetValue();
      dataCadastro.resetValue();
      opcaoUf.resetValue();
      campoNomeCompleto.resetValue();
      campoTelefoneComercial.resetValue();
      campoFax.resetValue();
      campoEmail.resetValue();
      campoPaginaWeb.resetValue();
      campoRazaoSocial.resetValue();
      campoCnpj.resetValue();
      campoIncricaoEstadual.resetValue();
      campoRua.resetValue();
      campoBairro.resetValue();
      campoCep.resetValue();
      campoNumero.resetValue();
      campoComplemento.resetValue();
      this.setaCampos(true);
      btn_excluir.setRendered(true);
      btnAlterar1.setRendered(true);
      btn_confirmaAlteracao.setRendered(true);
   }

   public String tabelaResultadoBusca_firstPageAction() {
      dataTable1Model.setWrappedData(this.getPaginacaoLista().firstPage());
      tabelaResultadoBuscaFooterFirstButton.setDisabled(true);
      tabelaResultadoBuscaFooterPreviousButton.setDisabled(true);
      if (this.getPaginacaoLista().getTotalPaginas() > 1) {
         tabelaResultadoBuscaFooterNextButton.setDisabled(false);
         tabelaResultadoBuscaFooterLastButton.setDisabled(false);
      }
      return null;
   }

   public String tabelaResultadoBusca_previousPageAction() {
      dataTable1Model.setWrappedData(this.getPaginacaoLista().previousPage());
      if (this.getPaginacaoLista().getNumeroDaPagina() == 1) {
         tabelaResultadoBuscaFooterNextButton.setDisabled(true);
         tabelaResultadoBuscaFooterFirstButton.setDisabled(true);
      }
      if (this.getPaginacaoLista().getTotalPaginas() > 1) {
         tabelaResultadoBuscaFooterNextButton.setDisabled(false);
      }
      if (this.getPaginacaoLista().getNumeroDaPagina() >= 2) {
         tabelaResultadoBuscaFooterFirstButton.setDisabled(false);
      }
      return null;
   }

   public String tabelaResultadoBusca_nextPageAction() {
      dataTable1Model.setWrappedData(this.getPaginacaoLista().nextPage());
      tabelaResultadoBuscaFooterPreviousButton.setDisabled(false);
      if (this.getPaginacaoLista().getTotalPaginas() == this.getPaginacaoLista().getNumeroDaPagina()) {
         tabelaResultadoBuscaFooterNextButton.setDisabled(true);
         tabelaResultadoBuscaFooterLastButton.setDisabled(true);
      }
      if (this.getPaginacaoLista().getNumeroDaPagina() >= 2) {
         tabelaResultadoBuscaFooterFirstButton.setDisabled(false);
      }
      return null;
   }

   public String tabelaResultadoBusca_lastPageAction() {
      dataTable1Model.setWrappedData(this.getPaginacaoLista().lastPage());
      if (this.getPaginacaoLista().getTotalPaginas() == this.getPaginacaoLista().getNumeroDaPagina()) {
         tabelaResultadoBuscaFooterLastButton.setDisabled(false);
         tabelaResultadoBuscaFooterNextButton.setDisabled(true);
         tabelaResultadoBuscaFooterPreviousButton.setDisabled(false);
         tabelaResultadoBuscaFooterFirstButton.setDisabled(false);
      }
      if (this.getPaginacaoLista().getNumeroDaPagina() >= 2) {
         tabelaResultadoBuscaFooterFirstButton.setDisabled(false);
      }
      return null;
   }

   //metodo para controlar os botoes da paginacao
   public void controlaPaginacao(int controlePaginas) {
      if (controlePaginas == 0) {
         tabelaResultadoBuscaFooterFirstButton.setDisabled(true);
         tabelaResultadoBuscaFooterPreviousButton.setDisabled(true);
         tabelaResultadoBuscaFooterNextButton.setDisabled(true);
         tabelaResultadoBuscaFooterLastButton.setDisabled(true);
      }
      if (controlePaginas > 5) {
         tabelaResultadoBuscaFooterNextButton.setDisabled(false);
         tabelaResultadoBuscaFooterLastButton.setDisabled(false);
      }
   }

   public String linkAction1_action() {
      this.pessoaJuridica = (PessoaJuridicaVO) tabelaResultadoBusca.getRowData(); //pega o objeto da linha selecionada
      endereco = (EnderecoVO) pessoaJuridica.getEndereco().iterator().next();
      campoBairro.setValue(endereco.getBairro());
      campoCep.setValue(endereco.getCep());
      this.InicializaCampoCidade(endereco.getCidades().getCodEstado().getCodEstado());
      campoCidade.setValue(endereco.getCidades().getCodCidade());
      campoCnpj.setValue(pessoaJuridica.getCnpj());
      campoCodCliente.setValue(pessoaJuridica.getCodPessoa());
      campoComplemento.setValue(endereco.getComplemento());
      campoEmail.setValue(pessoaJuridica.getEmail());
      campoFax.setValue(pessoaJuridica.getTelefoneDois());
      campoIncricaoEstadual.setValue(pessoaJuridica.getInscEstadual());
      campoNomeCompleto.setValue(pessoaJuridica.getNome());
      campoNumero.setValue(endereco.getNumero());
      campoPaginaWeb.setValue(pessoaJuridica.getPaginaWeb());
      campoRua.setValue(endereco.getRua());
      campoRazaoSocial.setValue(pessoaJuridica.getRazaoSocial());
      if (endereco.getTipo_endereco().equalsIgnoreCase("residencial")) {
         tipoEndereco.setValue(new Integer(1));
      } else {
         tipoEndereco.setValue(new Integer(2));
      }
      campoTelefoneComercial.setValue(pessoaJuridica.getTelefoneUm());
      btnAlterar1.setRendered(true);
      btn_excluir.setRendered(true);
      btn_confirmaAlteracao.setRendered(false);
      this.setaCampos(true);

      return null;

   }

   public String btnPopUp1_action() throws Exception {
        if(controlaSaida==1){
          return "voltar";
      }
      if (this.controle == true) {
         SessionFacadeAlterarImplements facadeAlterar = new SessionFacadeAlterarImplements();
         Date datacadastro = (Date) (Object) dataCadastro.getValue();

         try {
            if (facadeAlterar.alterarPessoaJuridica(pessoaJuridica.getCodPessoa(), campoNomeCompleto.getValue().toString(), campoTelefoneComercial.getValue().toString(),
                    campoFax.getValue().toString(), campoEmail.getValue().toString(), campoPaginaWeb.getValue().toString(), "",
                    datacadastro, campoRazaoSocial.getValue().toString(), campoCnpj.getValue().toString(), campoIncricaoEstadual.getValue().toString(),
                    //parametros Endereco
                    endereco.getCodEndereco(), this.parserInt(tipoEndereco.getValue()), campoRua.getValue().toString(), campoBairro.getValue().toString(), campoCep.getValue().toString(), campoNumero.getValue().toString(), campoComplemento.getValue().toString(),
                    this.parserInt(campoCidade.getValue().toString()))) {

               controlaPopup(true, "Pessoa Juridica alterada com sucesso!", false, true, "", "OK");
               btnBuscar_action();

            }
         } catch (IOException ex) {
            controlaPopup(true, "Erro:" + ex.getMessage() + "caused by: " + ex.getStackTrace(), false, true, "", "OK");
            System.err.println("Erro:" + ex.getMessage() + "caused by: " + ex.getStackTrace());
         } catch (Exception e) {
            controlaPopup(true, "Erro:" + e.getMessage() + "caused by: " + e.getStackTrace(), false, true, "", "OK");
            System.err.println("Erro:" + e.getMessage() + "caused by: " + e.getStackTrace());
         }
         limpaCampos();
         this.setaCampos(true);
         btnAlterar1.setRendered(false);
         btn_confirmaAlteracao.setRendered(false);
         btn_excluir.setRendered(false);

         return "sair";
      } else {
         SessionFacadeRemoverImplements remover = new SessionFacadeRemoverImplements();
         try {
            if (remover.removerPessoaJuridica(pessoaJuridica, endereco)) {
               btn_excluir.setRendered(false);
               btnAlterar1.setRendered(false);
               controlaPopup(true, "Pessoa Juridica excluida com sucesso!", false, true, "", "OK");
               btnBuscar_action();
            }
         } catch (Exception e) {
            controlaPopup(true, "Erro:" + e.getMessage() + "caused by: " + e.getStackTrace(), false, true, "", "OK");
            System.err.println("Erro:" + e.getMessage() + "caused by: " + e.getStackTrace());
         }
         limpaCampos();
         this.setaCampos(true);
         btnAlterar1.setRendered(false);
         btn_confirmaAlteracao.setRendered(false);
         btn_excluir.setRendered(false);
      }
      return "sair";
   }

   public void linkCancelar() {
      campoBairro.resetValue();
      campoCep.resetValue();
      campoCnpj.resetValue();
      campoCodCliente.resetValue();
      campoComplemento.resetValue();
      campoEmail.resetValue();
      campoFax.resetValue();
      campoIncricaoEstadual.resetValue();
      campoNomeCompleto.resetValue();
      campoNumero.resetValue();
      campoPaginaWeb.resetValue();
      campoRua.resetValue();
      campoRazaoSocial.resetValue();
      tipoEndereco.setValue(new Integer(1));
      campoTelefoneComercial.resetValue();
      btnAlterar1.setRendered(false);
      btn_excluir.setRendered(false);
      this.setaCampos(true);
      dataTable1Model.setWrappedData(null);
      btn_confirmaAlteracao.setRendered(false);
   }

   public String tx_opCancelarAba01_action() {
      this.linkCancelar();
      return null;
   }

   public String tx_opCancelarAba02_action() {
      this.linkCancelar();
      return null;
   }

   public DefaultSelectionItems getItem() {
      return item;
   }

   public void setItem(DefaultSelectionItems item) {
      this.item = item;
   }

   public void campoABuscar_processValueChange(ValueChangeEvent vce) {
      if (Integer.parseInt(tipoBusca.getValue().toString()) == 1) {
         setItem(new SessionFacadeBuscarImplements().consultaSelectInputText(2, "nome", campoABuscar.getValue().toString(), PessoaJuridicaVO.class));

      } else if (Integer.parseInt(tipoBusca.getValue().toString()) == 2) {
        setItem(item = new SessionFacadeBuscarImplements().consultaSelectInputText(2, "cnpj", campoABuscar.getValue().toString(), PessoaJuridicaVO.class));

      }
   }
   
   public void painelBuscarPessoaJuridica_processTabChange(ValueChangeEvent vce) {
      if(vce.getComponent().getId().equals("tab1")){

      }else{
         
      }
   }

   public String btn_confirmaAlteracao_action() {
      controlaPopup(true, "Deseja Alterar a Pessoa Juridica Selecionada ?", true, true, "Sim", "Não");
      this.controle = true;
      return null;
   }

   public String btn_excluir_action() {

      controlaPopup(true, "Deseja Excluir a Pessoa Juridica Selecionada ?", true, true, "Sim", "Não");

      this.controle = false;

      return null;
   }

   public String btnAlterar1_action() {
      this.setaCampos(false);
      btn_excluir.setRendered(false);
      btnAlterar1.setRendered(false);
      btn_confirmaAlteracao.setRendered(true);
      return null;
   }

   //metodo para preenchimento do combobox fornecedor
   public DefaultSelectionItems InicializaCampoCidade(int codEstado) {
      SessionFacadeBuscarImplements facadeBusca = new SessionFacadeBuscarImplements();
      DefaultSelectionItems itens = new DefaultSelectionItems();
      itens.clear();
      try {
         //  String campo_desejado,Object oque_buscar,String nomeObjetoAsssociado,String ordenarPor,Class classe
         List<CidadeVO> listaCidades = facadeBusca.buscaTodosComAssociacao("codEstado", codEstado, "codEstado", "codCidade", CidadeVO.class);
         int j = 0;
         while (j < listaCidades.size()) {
            itens.add(new SelectItem(listaCidades.get(j).getCodCidade(), listaCidades.get(j).getNome()));
            j++;
         }
         this.setSelectOneMenu1DefaultItems1(itens);
      } catch (NullPointerException e) {
         System.err.print("Erro em inicializar o combobox:" + e.getMessage());
      }
      return null;
   }

   public void opcaoUf_processValueChange(ValueChangeEvent vce) {
      InicializaCampoCidade(Integer.parseInt(opcaoUf.getValue().toString()));
   }

   public String btnPopUp2_action() {
      panelPopup.setRendered(false);
      return "sair";
   }

   public String link_AbaAnterior01_action() {
      painelBuscarPessoaJuridica.setSelectedIndex(0);
      return null;
   }


   //Action - VoltarSuperior
    public String btn_voltar_action() {
        controlaSaida = 1;
        controlaPopup(true,"Deseja Sair ?",true,true,"Sim","Não");
        return null;
    }

}
